package sv.com.globalsolutionslt.manejador;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import sv.com.globalsolutionslt.controlador.ContactoEntidadFacade;
import sv.com.globalsolutionslt.controlador.PublicacionFacade;
import sv.com.globalsolutionslt.entidades.AreaEmpresa;
import sv.com.globalsolutionslt.entidades.ContactoEntidad;
import sv.com.globalsolutionslt.entidades.Departamento;
import sv.com.globalsolutionslt.entidades.Direccion;
import sv.com.globalsolutionslt.entidades.Persona;
import sv.com.globalsolutionslt.entidades.Publicacion;
import sv.com.globalsolutionslt.entidades.TipoCargo;

@ManagedBean
@SessionScoped
public class postulacionEmpresalMB {
    
    @EJB
    private ContactoEntidadFacade contactoEntidadFacade;    
    @EJB
    private PublicacionFacade publicacionFacade;
    
    private Publicacion publicacion;
    private Persona persona;
    private Direccion direccion;
    private Departamento departamento;
    
    private ContactoEntidad email;
    private ContactoEntidad telefono;
    private ContactoEntidad face;
    private ContactoEntidad twitter;    
    
    private AreaEmpresa areaEmpresa;
    private TipoCargo tipoCargo;
    private String palabras;    
    private double pg;

    public double getPg() {return pg;}
    public void setPg(long pg) {this.pg = pg;} 

    public AreaEmpresa getAreaEmpresa() {return areaEmpresa;}
    public void setAreaEmpresa(AreaEmpresa areaEmpresa) {this.areaEmpresa = areaEmpresa;}

    public TipoCargo getTipoCargo() {return tipoCargo;}
    public void setTipoCargo(TipoCargo tipoCargo) {this.tipoCargo = tipoCargo;}

    public String getPalabras() {return palabras;}
    public void setPalabras(String palabras) {this.palabras = palabras;}

    public Publicacion getPublicacion() {return publicacion;}

    public Persona getPersona() {return persona;}
    public void setPersona(Persona persona) {this.persona = persona;}
    
    ////////////////////////////////////////////////////////////////////////////    
    public Direccion getDireccion() {return direccion;}
    public void setDireccion(Direccion direccion) {this.direccion = direccion;}

    public Departamento getDepartamento() {return departamento;}
    public void setDepartamento(Departamento departamento) {this.departamento = departamento;}
    
    public ContactoEntidad getEmail() {return email;}
    public void setEmail(ContactoEntidad email) {this.email = email;}

    public ContactoEntidad getTelefono() {return telefono;}
    public void setTelefono(ContactoEntidad telefono) {this.telefono = telefono;}

    public ContactoEntidad getFace() {return face;}
    public void setFace(ContactoEntidad face) {this.face = face;}

    public ContactoEntidad getTwitter() {return twitter;}
    public void setTwitter(ContactoEntidad twitter) {this.twitter = twitter;}    
    ////////////////////////////////////////////////////////////////////////////

    public postulacionEmpresalMB() {
        areaEmpresa= null;
        tipoCargo= null;
        palabras= "";    
        pg=0;        
    } 
    public void verDetalles(Publicacion p){
        publicacion=p;
    }
    public String prepararVer(Persona p){
        persona=p;  
        direccion=persona.getDireccionList().get(0);
        departamento=direccion.getIdMunicipio().getIdDepartamento();
        telefono = contactoEntidadFacade.bValor(persona.getIdPersona(), 1);
        email = contactoEntidadFacade.bValor(persona.getIdPersona(), 2);
        face = contactoEntidadFacade.bValor(persona.getIdPersona(), 3);
        twitter = contactoEntidadFacade.bValor(persona.getIdPersona(), 4);        
        return "/vistas/postulacionEmpleo/detalleCandidato";        
    }
    public String inicio(){         
        pg=0;  
        return "/vistas/detallePostulacion/detallePostulaciones";
    }
    public String fin(){   
        pg= Math.ceil(publicacionFacade.CantidadPublicacioneEmpresa(areaEmpresa,tipoCargo,palabras)/10.0)-1;      
        return "/vistas/detallePostulacion/detallePostulaciones";
    }   
    public String siguiente(){        
        if((Math.ceil(publicacionFacade.CantidadPublicacioneEmpresa(areaEmpresa,tipoCargo,palabras)/10.0)-1)!=pg)
            pg+=1;       
        return "/vistas/detallePostulacion/detallePostulaciones";
    }     
    public String atras(){        
        if(pg!=0.0)
            pg-=1;    
        return "/vistas/detallePostulacion/detallePostulaciones";
    }    
}